Skip to content

Sync dev and agentic tooling from python-open-source-template - #558

Merged
palewire merged 2 commits into
chekos:mainfrom
palewire:sync-dev-agentic-config
Sep 12, 2026
Merged

palewire merged 2 commits into
chekos:mainfrom
palewire:sync-dev-agentic-config

Conversation

@palewire

Copy link
Copy Markdown
Collaborator

Summary

Syncs this repo's development and agentic tooling with the current state of palewire/python-open-source-template.

  • Add AGENTS.md, an expanded Makefile (bootstrap/check/verify/test-parallel/package-verify/etc.), MANIFEST.in, CHANGELOG.md, and RELEASING.md.
  • Switch [project.optional-dependencies] to PEP 735 [dependency-groups] (dev/test/docs).
  • Replace mypy with ty for static type checking. This required real fixes, not just config: ~150 bare dict annotations needed dict[str, Any], plus a handful of Any-leak return-type issues and stale # type: ignore comments.
  • Expand .pre-commit-config.yaml (detect-secrets, codespell, actionlint, blacken-docs, zizmor, a pre-push ty hook), which caught and fixed two real typos (Initalize, resutls).
  • Add deptry, zizmor, check-manifest, check-wheel-contents, twine, and vulture as dev tooling. deptry caught two genuinely unused runtime dependencies (rich, exceptiongroup), which are now removed.
  • Add CodeQL and OpenSSF Scorecard workflows, issue/PR templates, CODEOWNERS, .editorconfig, .gitattributes, .env.example, and .python-version.
  • Rewrite continuous-deployment.yml around the new Makefile targets. PyPI publishing stays on the existing PYPI_API_TOKEN secret (not Trusted Publishing).
  • Add a docs.yml workflow that builds and link-checks the Sphinx docs in CI; documentation hosting/theme stays on Read the Docs (not migrated to the template's S3 + palewire-theme setup).

Deliberately not adopted, to keep this a config/tooling sync rather than a large content change:

  • The template's expanded Ruff lint rule set (ANN, S, BLE, PTH, etc.) — would require a separate, large lint-fixing pass across the package.
  • Strict docs-check (-W) in CI — the docs currently have 34 pre-existing Sphinx warnings (duplicate autosectionlabel references) that would break CI on day one. CI uses the non-strict make docs build instead.

Test plan

  • make check (ruff lint/format, ty check, deptry, zizmor, diff-check) passes clean
  • make manifest-check, make build, make package-verify PACKAGE=datawrapper all pass
  • Full pre-commit hook suite (pre-commit run --all-files) passes clean
  • Full test suite: 1071 passed, 3 skipped
  • make docs builds successfully

🤖 Generated with Claude Code

palewire and others added 2 commits September 12, 2026 19:14
Adopt the current dev/CI scaffolding from palewire/python-open-source-template:

- Add AGENTS.md, an expanded Makefile (bootstrap/check/verify/test-parallel/
  package-verify/etc.), MANIFEST.in, CHANGELOG.md, and RELEASING.md.
- Switch project dependency declarations from optional-dependencies to PEP 735
  dependency-groups (dev/test/docs).
- Replace mypy with ty for static type checking, fixing the ~150 bare `dict`
  annotations and unsound-return-statement cases it surfaced across the
  package so `make check` passes clean.
- Expand pre-commit hooks (detect-secrets, codespell, actionlint, blacken-docs,
  zizmor, a pre-push ty hook) and fix the real typos/formatting they caught.
- Add deptry, zizmor, check-manifest, check-wheel-contents, twine, and vulture
  as dev tooling; remove the unused rich and exceptiongroup dependencies that
  deptry flagged.
- Add CodeQL and OpenSSF Scorecard workflows, issue/PR templates, CODEOWNERS,
  .editorconfig, .gitattributes, .env.example, and .python-version.
- Rewrite continuous-deployment.yml around the new Makefile targets; keep PyPI
  publishing on the existing PYPI_API_TOKEN secret (not Trusted Publishing).
- Add a docs.yml workflow that builds and link-checks the Sphinx docs in CI;
  documentation hosting/theme stays on Read the Docs.

All changes validated locally: make check, the full pre-commit suite, and the
full pytest suite (1071 passed, 3 skipped) all pass clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Reconcile the dev/agentic tooling sync with 56 commits of feature work
already on chekos/Datawrapper:main (MultipleColumnPanel, DataChange/
DataChangeList, Line color convenience mapping, deprecation compatibility
and public API guardrail tests, etc.).

Conflict resolution notes:
- .github/workflows/continuous-deployment.yml, .pre-commit-config.yaml:
  kept this branch's Makefile-driven structure and ty-based type checking,
  adopted upstream's newer action/tool version pins (checkout@v7,
  setup-uv@v9.0.0, upload-artifact@v7, download-artifact@v8, ruff v0.16.0,
  pyupgrade v3.21.2, check-added-large-files maxkb=1024).
- AGENTS.md, CONTRIBUTING.md, README.md: merged both versions' guidance
  (this branch's make targets/workflow plus upstream's testing strategy,
  AI-agent guardrails, and PR-focus guidance).
- datawrapper/__main__.py: kept upstream's `refresh_data`/`post` semantic
  fix (dict | bool for empty-success responses) with the dict[str, Any]
  type-argument fix applied on top.
- datawrapper/charts/line.py: kept upstream's Line color convenience
  mapping methods and the broader dict | list deserialize_model signature,
  with dict[str, Any] applied throughout.
- docs/user-guide/charts/multiple-column-charts.md: adopted upstream's
  MultipleColumnPanel-based example (supersedes the old raw-dict panels).
- pyproject.toml: kept dependency-groups/ty; picked up upstream's ruff
  version pin and switch to `[tool.setuptools.packages.find]`.
- uv.lock: regenerated with `uv lock` against the resolved pyproject.toml.
- datawrapper/charts/multiple_column.py: fixed a new ty finding this merge
  surfaced (MultipleColumnPanel(**panel_data) -> .model_validate(panel_data))
  in the newly-merged panel-conversion code.

Re-validated after merging: make check, full pre-commit suite, and the full
pytest suite (1120 passed, 3 skipped) all pass clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@palewire
palewire merged commit 4a865de into chekos:main Sep 12, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants